====================本系列文章沒有什麼高深的理論====================
====================純粹是以一個菜雞的視角來分享====================
前面提到了資料型別,假如想要在JavaScript檢查型別該怎麼做呢?
我們可以透過typeof運算子來處理
typeof false; // 'boolearn' ,布林值
typeof 'cat'; // 'string' ,字串
typeof 456; // 'number' ,數字
typeof NaN; // 'number' ,NaN是一種表示「不是數字」的數字
typeof {}; // 'object' ,物件
typeof []; // 'object' ,物件
typeof undefined; //'undefined'
typeof null // 'object' ,物件
透過typeof
運算子回傳的都是「字串」(String),不過有些可能跟預期的不太一樣,這是因為在JavaScript初期實作時,JavaScript的值是由一個表示「型別」的標籤與實際內容的「值」所組成的。
由於物件這個型別的標籤是「0」,而null表示的是空值(慣例會以0x00表示),於是代表null
的標籤跟物件(Object)的標籤搞混了,才出現了這樣的錯誤。
在ES6時,JavaScript的老爸Brendan Eich本來想將typeof null
修正成 typeof "null"
,但JSON的老爸Douglas Crockfor持保留意見,因為修改了會影響太多舊有的程式,也就是前面所說的「妥協」。
今日的分享就到這囉,我們明天見,掰掰!